package leetcode.shuangpoint;

/**
 给定一个非空字符串 s，最多删除一个字符。判断是否能成为回文字符串。
 输入: s = "aba"
 输出: true


 */
public class ValidPalindrome680 {

    public static void main(String[] args) {
        System.out.println(new ValidPalindrome680().validPalindrome("acba",true));
    }
    public boolean validPalindrome(String s,boolean flag) {
        int i = 0;
        int j = s.length()-1;//[i...j]

        while (i<=j){
            if(s.charAt(i)!=s.charAt(j)){
                if(flag) {             //   [i...j-1]
                    String leftStr = s.substring(i, j);   //    [i+1...j]
                    String rightStr = s.substring(i + 1, j+1);
                    boolean left = validPalindrome(leftStr, false);
                    boolean right = validPalindrome(rightStr, false);
                    return  left|| right;
                }
                return false;
            }
            i++;
            j--;
        }
        return true;
    }
}